The ITU-H.264 Standard (H.264), also known as MPEG-4, Part 10, and Advanced Video Coding (AVC), may encode a video stream on a frame-by-frame basis, and may encode video frames on a macroblock-by-macroblock basis. The MPEG-4 standard may specify the use of spatial prediction, temporal prediction, discrete cosine transformation (DCT), interlaced coding and/or lossless entropy coding, for example, to compress macroblocks within a video stream.
The MPEG-4 video compression standard may be utilized to encode video information on a macroblock-by-macroblock basis. During encoding of video information utilizing the MPEG-4 standard, for example, prediction error information may be encoded together with prediction mode information, as well as with other side information necessary for the decoding process. In order to encode the prediction error information, a discrete cosine transformation may be applied to transform the prediction error information into frequency domain coefficients prior to encoding. During the encoding and the transformation processes within a video encoder, certain information relating to the prediction error, for example, may be lost.
As a result of the lost or missing information, the quality of the decoded video signal may be decreased. After quantized frequency coefficients are transformed back to prediction error information and a macroblock is reconstructed, certain artifacts may appear in the decoded video stream. More specifically, transform blockiness may appear in the decoded video in the form of square grid artifacts, for example. Artifacts other than blockiness may also appear in the decoded video stream due to missing video information. Transform blockiness may be associated with missing pixel information along one or more horizontal and/or vertical borders, or edges, between neighboring macroblocks.
In video systems utilizing blocks of video information, a video deblocker may be utilized to smooth the visual transition between adjacent video blocks. During a conventional deblocking process, pixels from previously processed, or deblocked, macroblocks may be utilized to deblock one or more portions of pixels within a current macroblock. The previously processed pixels are initially fetched from memory, for example, and then utilized in the processing, or deblocking, of pixels within the current macroblock. However, conventional methods of deblocking a decoded video stream utilized, for example, in an MPEG-4 environment, are time-consuming and inefficient. Conventional methods of deblocking are characterized by long latency periods for fetching previously processed pixels to be utilized in processing pixels within a current macroblock. In this manner, since processing pixels within a current macroblock utilizes less time than fetching the previously processed pixels necessary to deblock the pixels within the current macroblock, a conventional deblocker is inefficient as it experiences idle time while previously processed pixels are being fetched.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of ordinary skill in the art through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.